package com.example.deepschool.repositories;

import com.example.deepschool.Model.Organization;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Repository
@Mapper
public interface OrganizationRepository {
	
	/**
	 * 插入一个新的组织信息。
	 *
	 * @param organization 需要插入的组织对象。
	 * @return 返回插入操作影响的行数。
	 */
	Integer insert ( Organization organization );
	
	/**
	 * 根据ID删除一个组织信息。
	 *
	 * @param id 需要删除的组织的ID。
	 * @return 返回删除操作影响的行数。
	 */
	Integer delete ( Long id );
	
	/**
	 * 更新一个组织的信息。
	 *
	 * @param organization 需要更新的组织对象。
	 * @return 返回更新操作影响的行数。
	 */
	Integer update ( Organization organization );
	
	/**
	 * 根据ID选择一个组织信息。
	 *
	 * @param id 需要查询的组织的ID。
	 * @return 返回匹配的组织对象，如果没有找到返回null。
	 */
	Organization select ( Long id );
	
	/**
	 * 根据组织名称选择组织信息。
	 *
	 * @param name 需要查询的组织的名称。
	 * @return 返回匹配的组织对象数组，如果没有找到返回空数组。
	 */
	Organization[] selectByName ( String name );
}
